﻿/**
* jQuery EasyUI 1.2.6
* 
* Licensed under the GPL terms
* To use it on other terms please contact us
*
* Copyright(c) 2009-2012 stworthy [ stworthy@gmail.com ] 
* 
*/
(function ($) {
    function _1(_2) {
        $(_2).appendTo("body");
        $(_2).addClass("menu-top");
        var _3 = [];
        _4($(_2));
        var _5 = null;
        for (var i = 0; i < _3.length; i++) {
            var _6 = _3[i];
            _7(_6);
            _6.children("div.menu-item").each(function () {
                _f(_2, $(this));
            });
            _6.bind("mouseenter", function () {
                if (_5) {
                    clearTimeout(_5);
                    _5 = null;
                }
            }).bind("mouseleave", function () {
                _5 = setTimeout(function () {
                    _18(_2);
                }, 100);
            });
        }
        function _4(_8) {
            _3.push(_8);
            _8.find(">div").each(function () {
                var _9 = $(this);
                var _a = _9.find(">div");
                if (_a.length) {
                    _a.insertAfter(_2);
                    _9[0].submenu = _a;
                    _4(_a);
                }
            });
        };
        function _7(_b) {
            _b.addClass("menu").find(">div").each(function () {
                var _c = $(this);
                if (_c.hasClass("menu-sep")) {
                    _c.html("&nbsp;");
                } else {
                    var _d = _c.addClass("menu-item").html();
                    _c.empty().append($("<div class=\"menu-text\"></div>").html(_d));
                    var _e = _c.attr("iconCls") || _c.attr("icon");
                    if (_e) {
                        $("<div class=\"menu-icon\"></div>").addClass(_e).appendTo(_c);
                    }
                    if (_c[0].submenu) {
                        $("<div class=\"menu-rightarrow\"></div>").appendTo(_c);
                    }
                    _c._outerHeight(22);
                }
            });
            _b.hide();
        };
    };
    function _f(_10, _11) {
        _11.unbind(".menu");
        _11.bind("mousedown.menu", function () {
            return false;
        }).bind("click.menu", function () {
            if ($(this).hasClass("menu-item-disabled")) {
                return;
            }
            if (!this.submenu) {
                _18(_10);
                var _12 = $(this).attr("href");
                if (_12) {
                    location.href = _12;
                }
            }
            var _13 = $(_10).menu("getItem", this);
            $.data(_10, "menu").options.onClick.call(_10, _13);
        }).bind("mouseenter.menu", function (e) {
            _11.siblings().each(function () {
                if (this.submenu) {
                    _17(this.submenu);
                }
                $(this).removeClass("menu-active");
            });
            _11.addClass("menu-active");
            if ($(this).hasClass("menu-item-disabled")) {
                _11.addClass("menu-active-disabled");
                return;
            }
            var _14 = _11[0].submenu;
            if (_14) {
                var _15 = _11.offset().left + _11.outerWidth() - 2;
                if (_15 + _14.outerWidth() + 5 > $(window).width() + $(document).scrollLeft()) {
                    _15 = _11.offset().left - _14.outerWidth() + 2;
                }
                var top = _11.offset().top - 3;
                if (top + _14.outerHeight() > $(window).height() + $(document).scrollTop()) {
                    top = $(window).height() + $(document).scrollTop() - _14.outerHeight() - 5;
                }
                _1e(_14, { left: _15, top: top });
            }
        }).bind("mouseleave.menu", function (e) {
            _11.removeClass("menu-active menu-active-disabled");
            var _16 = _11[0].submenu;
            if (_16) {
                if (e.pageX >= parseInt(_16.css("left"))) {
                    _11.addClass("menu-active");
                } else {
                    _17(_16);
                }
            } else {
                _11.removeClass("menu-active");
            }
        });
    };
    function _18(_19) {
        var _1a = $.data(_19, "menu").options;
        _17($(_19));
        $(document).unbind(".menu");
        _1a.onHide.call(_19);
        return false;
    };
    function _1b(_1c, pos) {
        var _1d = $.data(_1c, "menu").options;
        if (pos) {
            _1d.left = pos.left;
            _1d.top = pos.top;
            if (_1d.left + $(_1c).outerWidth() > $(window).width() + $(document).scrollLeft()) {
                _1d.left = $(window).width() + $(document).scrollLeft() - $(_1c).outerWidth() - 5;
            }
            if (_1d.top + $(_1c).outerHeight() > $(window).height() + $(document).scrollTop()) {
                _1d.top -= $(_1c).outerHeight();
            }
        }
        _1e($(_1c), { left: _1d.left, top: _1d.top }, function () {
            $(document).unbind(".menu").bind("mousedown.menu", function () {
                _18(_1c);
                $(document).unbind(".menu");
                return false;
            });
            _1d.onShow.call(_1c);
        });
    };
    function _1e(_1f, pos, _20) {
        if (!_1f) {
            return;
        }
        if (pos) {
            _1f.css(pos);
        }
        _1f.show(0, function () {
            if (!_1f[0].shadow) {
                _1f[0].shadow = $("<div class=\"menu-shadow\"></div>").insertAfter(_1f);
            }
            _1f[0].shadow.css({ display: "block", zIndex: $.fn.menu.defaults.zIndex++, left: _1f.css("left"), top: _1f.css("top"), width: _1f.outerWidth(), height: _1f.outerHeight() });
            _1f.css("z-index", $.fn.menu.defaults.zIndex++);
            if (_20) {
                _20();
            }
        });
    };
    function _17(_21) {
        if (!_21) {
            return;
        }
        _22(_21);
        _21.find("div.menu-item").each(function () {
            if (this.submenu) {
                _17(this.submenu);
            }
            $(this).removeClass("menu-active");
        });
        function _22(m) {
            m.stop(true, true);
            if (m[0].shadow) {
                m[0].shadow.hide();
            }
            m.hide();
        };
    };
    function _23(_24, _25) {
        var _26 = null;
        var tmp = $("<div></div>");
        function _27(_28) {
            _28.children("div.menu-item").each(function () {
                var _29 = $(_24).menu("getItem", this);
                var s = tmp.empty().html(_29.text).text();
                if (_25 == $.trim(s)) {
                    _26 = _29;
                } else {
                    if (this.submenu && !_26) {
                        _27(this.submenu);
                    }
                }
            });
        };
        _27($(_24));
        tmp.remove();
        return _26;
    };
    function _2a(_2b, _2c, _2d) {
        var t = $(_2c);
        if (_2d) {
            t.addClass("menu-item-disabled");
            if (_2c.onclick) {
                _2c.onclick1 = _2c.onclick;
                _2c.onclick = null;
            }
        } else {
            t.removeClass("menu-item-disabled");
            if (_2c.onclick1) {
                _2c.onclick = _2c.onclick1;
                _2c.onclick1 = null;
            }
        }
    };
    function _2e(_2f, _30) {
        var _31 = $(_2f);
        if (_30.parent) {
            _31 = _30.parent.submenu;
        }
        var _32 = $("<div class=\"menu-item\"></div>").appendTo(_31);
        $("<div class=\"menu-text\"></div>").html(_30.text).appendTo(_32);
        if (_30.iconCls) {
            $("<div class=\"menu-icon\"></div>").addClass(_30.iconCls).appendTo(_32);
        }
        if (_30.id) {
            _32.attr("id", _30.id);
        }
        if (_30.href) {
            _32.attr("href", _30.href);
        }
        if (_30.onclick) {
            if (typeof _30.onclick == "string") {
                _32.attr("onclick", _30.onclick);
            } else {
                _32[0].onclick = eval(_30.onclick);
            }
        }
        if (_30.handler) {
            _32[0].onclick = eval(_30.handler);
        }
        _f(_2f, _32);
    };
    function _33(_34, _35) {
        function _36(el) {
            if (el.submenu) {
                el.submenu.children("div.menu-item").each(function () {
                    _36(this);
                });
                var _37 = el.submenu[0].shadow;
                if (_37) {
                    _37.remove();
                }
                el.submenu.remove();
            }
            $(el).remove();
        };
        _36(_35);
    };
    function _38(_39) {
        $(_39).children("div.menu-item").each(function () {
            _33(_39, this);
        });
        if (_39.shadow) {
            _39.shadow.remove();
        }
        $(_39).remove();
    };
    $.fn.menu = function (_3a, _3b) {
        if (typeof _3a == "string") {
            return $.fn.menu.methods[_3a](this, _3b);
        }
        _3a = _3a || {};
        return this.each(function () {
            var _3c = $.data(this, "menu");
            if (_3c) {
                $.extend(_3c.options, _3a);
            } else {
                _3c = $.data(this, "menu", { options: $.extend({}, $.fn.menu.defaults, _3a) });
                _1(this);
            }
            $(this).css({ left: _3c.options.left, top: _3c.options.top });
        });
    };
    $.fn._outerWidth = function (_3d) {
        return this.each(function () {
            if (!$.boxModel && $.browser.msie) {
                $(this).width(_3d);
            } else {
                $(this).width(_3d - ($(this).outerWidth() - $(this).width()));
            }
        });
    };
    $.fn._outerHeight = function (_3e) {
        return this.each(function () {
            if (!$.boxModel && $.browser.msie) {
                $(this).height(_3e);
            } else {
                $(this).height(_3e - ($(this).outerHeight() - $(this).height()));
            }
        });
    };
    $.fn.menu.methods = { show: function (jq, pos) {
        return jq.each(function () {
            _1b(this, pos);
        });
    }, hide: function (jq) {
        return jq.each(function () {
            _18(this);
        });
    }, destroy: function (jq) {
        return jq.each(function () {
            _38(this);
        });
    }, setText: function (jq, _3f) {
        return jq.each(function () {
            $(_3f.target).children("div.menu-text").html(_3f.text);
        });
    }, setIcon: function (jq, _40) {
        return jq.each(function () {
            var _41 = $(this).menu("getItem", _40.target);
            if (_41.iconCls) {
                $(_41.target).children("div.menu-icon").removeClass(_41.iconCls).addClass(_40.iconCls);
            } else {
                $("<div class=\"menu-icon\"></div>").addClass(_40.iconCls).appendTo(_40.target);
            }
        });
    }, getItem: function (jq, _42) {
        var _43 = { target: _42, id: $(_42).attr("id"), text: $.trim($(_42).children("div.menu-text").html()), disabled: $(_42).hasClass("menu-item-disabled"), href: $(_42).attr("href"), onclick: _42.onclick };
        var _44 = $(_42).children("div.menu-icon");
        if (_44.length) {
            var cc = [];
            var aa = _44.attr("class").split(" ");
            for (var i = 0; i < aa.length; i++) {
                if (aa[i] != "menu-icon") {
                    cc.push(aa[i]);
                }
            }
            _43.iconCls = cc.join(" ");
        }
        return _43;
    }, findItem: function (jq, _45) {
        return _23(jq[0], _45);
    }, appendItem: function (jq, _46) {
        return jq.each(function () {
            _2e(this, _46);
        });
    }, removeItem: function (jq, _47) {
        return jq.each(function () {
            _33(this, _47);
        });
    }, enableItem: function (jq, _48) {
        return jq.each(function () {
            _2a(this, _48, false);
        });
    }, disableItem: function (jq, _49) {
        return jq.each(function () {
            _2a(this, _49, true);
        });
    } 
    };
    $.fn.menu.defaults = { zIndex: 110000, left: 0, top: 0, onShow: function () {
    }, onHide: function () {
    }, onClick: function (_4a) {
    } 
    };
})(jQuery);

